package com.ocp.socket.common.utils;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

public class JdbcUtils {

    /**
     * 释放数据库连接资源
     * @param rs
     * @param ps
     * @param conn
     */
    public static void close(ResultSet rs, PreparedStatement ps, Connection conn){
        //结果集资源释放
        if(rs != null){
            try {
                rs.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        //执行语句块资源释放
        if(ps != null){
            try {
                ps.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        //连接资源释放
        if(conn != null){
            try {
                conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }

    /**
     * 结果集资源释放
     * @param rs 结果集
     */
    public static void closeResultSet(ResultSet rs){
        //结果集资源释放
        if(rs != null){
            try {
                rs.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }

    /**
     * 执行语句块资源释放
     * @param ps 执行语句块
     */
    public static void closePreparedStatement(PreparedStatement ps){
        //执行语句块资源释放
        if(ps != null){
            try {
                ps.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }

    /**
     * 连接资源释放
     * @param conn 连接资源
     */
    public static void closeConnection(Connection conn){
        //连接资源释放
        if(conn != null){
            try {
                conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }

    /**
     * 回滚
     * @param conn 连接资源
     */
    public static void rollBackConnection(Connection conn){
        //连接资源释放
        if(conn != null){
            try {
                conn.rollback();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }

}
